14531
12906
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。
この質問を改善したいですか?質問を更新して、スタックオーバーフローのトピックになります。
4年前に閉鎖されました。
この質問を改善する
ユーザーが選択した複数のテキストファイルを処理するShinyアプリを作成しています。
出力は、数百万行と数十列の巨大なデータフレームです。
ユーザーがインタラクティブに行をフィルタリングし、列を選択し、列を要約できるようにすることに興味があります(mean、sd、max、min、sumなどの関数のリストから選択することにより)。その結果、ユーザーの選択ごとにデータを要約するデータフレームが小さくなります。基本的に、dplyrライブラリの基本機能を実装するGUIを作成する必要があります。
一般に、私はGUI要素の束を手動で作成し、それらをいくつかのdplyrコマンドを使用してサーバー関数にフィードすることによってそれを行う方法を知っています。これはかなり標準的な機能(データフレームをフィルタリングして要約するGUI)のように見えるので、最初から構築を開始する前に、現状のまままたは開始点として使用できる「既成の」ものがあるかどうか疑問に思います。 。 
rpivotTableはあなたが求めているものではなかったとおっしゃっていましたが、手間のかかる作業を行うように構成できると思います。
これが例です(操作にrpivotTableを使用し、data.frameを表示するためにDTを使用し、DOMからinnerHTMLを解析するためにrvestを使用します。クライアント側からテーブルオブジェクトを渡すためのより良いデータ形式があるかもしれませんが、これは概念実証です)::
ui.R
ライブラリ(光沢)
ライブラリ(DT)
ライブラリ(rpivotTable)
FullPage <-fluidPage(
DT :: dataTableOutput( 'aSummaryTable')、
rpivotTableOutput( 'RESULTS')
)
全ページ
server.R:
ライブラリ(光沢)
ライブラリ(rpivotTable)
ライブラリ(DT)
ライブラリ(rvest)
関数(入力、出力、セッション){
#サンプルデータを作成する
qbdata <-reactive({
expand.grid(LETTERS、1:3)
})
#HTMLをクリーンアップし、リアクティブとして保存します
summarydf <-eventReactive(input $ myData、{
input $ myData%>%
read_html%>%
html_table(fill = TRUE)%>%
#rpivotTableに2つのテーブルがあることがわかりました、2番目が必要です
。[[2]]
})
#dfをDT :: datatableとして表示
output $ aSummaryTable <-DT :: renderDataTable({
datatable(summarydf()、rownames = FALSE)
})
#構成が更新されるたびに、テーブルの内容を使用してコールバックします
output $ RESULTS <-renderRpivotTable({
rpivotTable(
qbdata()、
onRefresh =
htmlwidgets :: JS( "function(config){
Shiny.onInputChange( 'myData'、document.getElementById( 'RESULTS')。innerHTML);
} ")
)
})
}
|
あなたが探している答えではありませんか? r dplyr shinyとタグ付けされた他の質問を参照するか、独自の質問をしてください。